/** ****************************************************************************
 * @file 	comm_factory.h
 * @author 	mojinpan
 * @copyright(c) 2018-2020 mojinpan. All rights reserved.
 * @brief 	通讯工厂
 *
 * @version 	V1.0
 * @date 	2025-06-20
 * @details
 * 1.
 *******************************************************************************/
#ifndef COMM_FACTORY_H
#define COMM_FACTORY_H

#include <tbox/main/module.h>
#include "comm/comm.h"

/*******************************************************************************
							Class Definition 类定义
*******************************************************************************/
namespace comm_adapter
{
    // 通讯工厂类
    class CommFactory
    {
    public:
        CommFactory();
        using CommCreatorFunc = std::function<Comm *(const std::string &, tbox::main::Context &, Comm::Parent &, tbox::main::Module *&)>;
        using CommMap = std::unordered_map<std::string, CommCreatorFunc>;
        // 获取通讯映射
        const CommMap &getCommMapping() const;

    private:
        // 通讯工厂映射
        CommMap CommFactory_;
    };
}

#endif
/*********************************END OF FILE**********************************/
